package com.mengmeng.demo.controller;
import com.mengmeng.demo.config.R;
import com.mengmeng.demo.user.user;
import com.mengmeng.demo.user.application;
import com.mengmeng.demo.user.token;
import com.mengmeng.demo.service.UserService;
import com.mengmeng.demo.service.ApplicationService;
import com.mengmeng.demo.service.TokenService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@Slf4j
//@RequestMapping("/")
public class IndexController {

    @Autowired
    private UserService service;
    @Autowired
    private ApplicationService appservice;
    @Autowired
    private TokenService tokenservice;

    /**
     * 查询信息
     * @return
     */
    //默认路径 http://localhost:8800/
    @GetMapping("/")
    public R getAll(){
        return new R(true,service.getAll());
    }
    @GetMapping("/app")
    public R getAllapp(){
        return new R(true,appservice.getAllapp());
    }
    @GetMapping("/token")
    public R getAllto(){
        return new R(true,tokenservice.getAllto());
    }


    /**
     * 修改信息
     * @param world
     * @return
     */
    @PostMapping("/update")
    public R update(@RequestBody user world){
        return new R(true,service.update(world));
    }
    @PostMapping("/updateapp")
    public R updateapp(@RequestBody application app){
        return new R(true,appservice.updateapp(app));
    }
    @PostMapping("/updatetoken")
    public R updateto(@RequestBody token to){
        return new R(true,tokenservice.updateto(to));
    }

    /**
     * 根据Id查询
     * @param id
     * @return
     */
    @GetMapping("/update/{id}")
    public R getByid(@PathVariable Integer id){
        log.info("查询数据Id为{}",id);
        // 这个style是html的写法
        return new R(true,service.getById(id));
    }
    @GetMapping("/updateapp/{ssoid}")
    public R getBySSOid(@PathVariable Integer ssoid){
        log.info("查询数据Id为{}",ssoid);
        // 这个style是html的写法
        return new R(true,appservice.getBySSOId(ssoid));
    }
    @GetMapping("/updatetoken/{token}")
    public R getBytoken(@PathVariable Integer token){
        log.info("查询数据Id为{}",token);
        // 这个style是html的写法
        return new R(true,tokenservice.getBytoken(token));
    }
    /**
     * 新增
     * @param world
     * @return
     */
    @PostMapping("/inserte")
    public R inserte(@RequestBody user world){
        log.info("添加数据为:{}",world);
        // 这个style是html的写法
        return new R(service.inserte(world));
    }
    @PostMapping("/inserteapp")
    public R inserteapp(@RequestBody application app){
        log.info("添加数据为:{}",app);
        // 这个style是html的写法
        return new R(appservice.inserteapp(app));
    }
    @PostMapping("/insertetoken")
    public R inserteto(@RequestBody token to){
        log.info("添加数据为:{}",to);
        // 这个style是html的写法
        return new R(tokenservice.inserteto(to));
    }
    /**
     * 根据Id删除
     * @param id
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public R delete(@PathVariable Integer id){
        log.info("删除ID为:{}",id);
        // 这个style是html的写法
        return new R(service.delete(id));
    }
    @DeleteMapping("/deleteapp/{ssoid}")
    public R deleteapp(@PathVariable Integer ssoid){
        log.info("删除ID为:{}",ssoid);
        // 这个style是html的写法
        return new R(appservice.deleteapp(ssoid));
    }
    @DeleteMapping("/deletetoken/{token}")
    public R deletetoken(@PathVariable Integer token){
        log.info("删除token为:{}",token);
        // 这个style是html的写法
        return new R(tokenservice.deleteto(token));
    }
}
